package exchange.packet;

import java.util.Date;


public interface ioKlient {

	//metody ogolne, wywolywane przy generowaniu kazdego pakietu
	//w celu zapelnienia naglowka
	public void id_uzytkownika(String id);
	public void klucz_sesji(String klucz_sesji);
	public void ip(String ip);
	public void czas();
	
	//autoryzacja
	public void loguj(String user, String haslo);
	public void wyloguj();
	
	//(uzytkownik)
	public void przelew_wewnetrzny(String numer_konta_z, String numer_konta_do, float kwota);
	public void przelew_zewnetrzny(String numer_konta_z, String numer_konta_do, float kwota);
	public void stan_konta(String numer_konta);
	public void nowa_lokata(String numer_konta, float kwota);
	public void likwidacja_lokaty(String numer_lokaty, String numer_konta_do_przelania_srodkow);
	public void splacanie_kredytu(String numer_konta, String numer_kredytu, float kwota);
	public void wyswietl_historie_konta(String numer_konta, Date od_kiedy, Date do_kiedy);
	public void wyswietl_dane_uzytkownika();
	
	//(bankier)
	public void dodaj_klienta(String imie, String nazwisko, String adres1, String adres2, Date data_urodzenia, String pesel, String numer_dowodu, String imie_ojca, String imie_matki, String nazwisko_panienskie_matki);
	public void usun_klienta(String numer_klienta);
	public void wyswietl_dane_uzytkownika(String uzytkownik);
	public void zmien_dane_klienta(String numer_klienta, String imie, String nazwisko, String adres1, String adres2, Date data_urodzenia, String pesel, String numer_dowodu, String imie_ojca, String imie_matki, String nazwisko_panienskie_matki);
	public void utworz_konto(String numer_uzytkownika, int typ_konta);
	public void usun_konto(String numer_konto);
	public void zmien_dane_konta(String numer_konta, float oprocentowanie, int okres_kapitalizacji);
	public void zmien_globalne_dane_kont(int typ_konta, float oprocentowanie, int kapitalizacja);
	public void dodaj_typ_konta(float oprocentowanie, int kapitalizacja);
	public void wyswietl_typy_kont();
	public void udziel_kredytu(String numer_uzytkownika, float kwota);
	public void wplata(String numer_konta, float kwota);
	public void wyplata(String numer_konta, float kwota, Date czas);
	public void lista_uzytkownikow();
	public void szukaj_klientow(String imie, String nazwisko, String id);
	
	//(administrator)
	public void usun_bankiera(String numer_klienta);
	public void edytuj_uprawnienia(String numer_klienta, int uprawnienia);
	public void lista_uprawnionych_uzytkownikow(int typ);
	public void szukaj_uprawnionych_klientow(String imie, String nazwisko, String id, int typ);
}
